var initialItem_record = Ext.data.Record.create( [ {
	name : 'id',
	type : 'int',
	mapping : 'id'
}, {
	name : 'initialId',
	type : 'int',
	mapping : 'initialId'
}, {
	name : 'partId',
	type : 'int'
}, {
	name : 'code',
	type : 'int',
	mapping : 'code'
}, {
	name : 'source',
	type : 'int',
	mapping : 'source'
}, {
	name : 'name',
	type : 'string',
	mapping : 'name'
}, {
	name : 'measurementUnit',
	type : 'string',
	mapping : 'measurementUnit'
}, {
	name : 'partCategoryId',
	type : 'int',
	mapping : 'partCategoryId'
}, {
	name : 'level1Name',
	type : 'string',
	mapping : 'level1Name'
}, {
	name : 'level2Name',
	type : 'string',
	mapping : 'level2Name'
}, {
	name : 'level1Id',
	type : 'int',
	mapping : 'level1Id'
}, {
	name : 'level1Id',
	type : 'int',
	mapping : 'level1Id'
}, {
	name : 'brand',
	type : 'string',
	mapping : 'brand'
}, {
	name : 'origin',
	type : 'string',
	mapping : 'origin'
}, {
	name : 'cost',
	type : 'float',
	mapping : 'cost'
}, {
	name : 'retailPrice',
	type : 'float',
	mapping : 'retailPrice'
}, {
	name : 'insurancePrice',
	type : 'float',
	mapping : 'insurancePrice'
}, {
	name : 'minPrice',
	type : 'float',
	mapping : 'minPrice'
}, {
	name : 'costAmout',
	type : 'float',
	mapping : 'costAmout'
}, {
	name : 'quantity',
	type : 'int',
	mapping : 'quantity'
}, {
	name : 'costAmount',
	type : 'float',
	mapping : 'costAmount'
}, {
	name : 'shelf',
	type : 'string',
	mapping : 'shelf'
}, {
	name : 'maxOnHand',
	type : 'int',
	mapping : 'maxOnHand'
}, {
	name : 'minOnHand',
	type : 'int',
	mapping : 'minOnHand'
}, {
	name : 'swapCode',
	type : 'string',
	mapping : 'swapCode'
}, {
	name : 'storeId',
	type : 'int',
	mapping : 'storeId'
}, {
	name : 'storeName',
	type : 'string',
	mapping : 'storeName'
}, {
	name : 'error',
	type : 'string',
	mapping : 'error'
} ]);
/* store */
var ds_source_select = new Ext.data.Store( {
	url : '/dictionary/findByVarGroup.do',
	// autoLoad:true,
	baseParams : {
		group : 'part_source'
	},
	reader : new Ext.data.JsonReader( {
		root : ''
	}, [ {
		name : 'varIndex',
		type : 'int'
	}, {
		name : 'varName',
		type : 'string'
	} ])
});

var ds_initialItem = new Ext.data.Store( {
	proxy : new Ext.data.HttpProxy( {
		url : '/initialItem/base!extList.do'
	}),
	pruneModifiedRecords : true,
	baseParams : {
		
	},
	paramNames : {
		start : "start",
		limit : "limit",
		sort : "sort",
		dir : "dir"
	},
	reader : new Ext.data.JsonReader( {
		totalProperty : 'totalProperty',
		root : 'root'
	}, initialItem_record)
});

/* store结束 */

var source_comboBox = new Ext.form.ComboBox( {
	// name : 'varName',
	typeAhead : true,
	width : 120,
	valueField : 'varIndex',
	displayField : 'varName',
	mode : 'remote',
	hiddenName : 'source',
	store : ds_source_select,
	selectOnFocus : true,
	triggerAction : 'all',
	allowBlank : false,
	loadingText : '加载中...',
	editable : false,
	emptyText : '请选择'
});


var cm_initialItem = new Ext.grid.ColumnModel( [ new Ext.grid.RowNumberer(), {
	header : '零件编码',
	width : 75,
	sortable : true,
	dataIndex : 'code'
}, {
	header : '零件名称',
	width : 75,
	sortable : true,
	dataIndex : 'name'
}, {
	header : '来源',
	width : 75,
	sortable : true,
	dataIndex : 'source',
	renderer : Ext.util.Format.comboRenderer(source_comboBox)
// editor:source_comboBox
		}, {
			header : '单位',
			width : 75,
			sortable : true,
			dataIndex : 'code'
		}, {
			header : '品牌',
			width : 75,
			sortable : true,
			dataIndex : 'brand'
		}, {
			header : '产地',
			width : 75,
			sortable : true,
			dataIndex : 'origin'
		}, {
			header : '数量',
			width : 75,
			sortable : true,
			dataIndex : 'quantity'
		}, {
			header : '仓库',
			width : 75,
			sortable : true,
			dataIndex : 'storeId'
		}, {
			header : '仓位',
			width : 75,
			sortable : true,
			dataIndex : 'shelf'
		}, {
			header : '进价',
			width : 75,
			sortable : true,
			dataIndex : 'cost'
		}, {
			header : '售价',
			width : 75,
			sortable : true,
			dataIndex : 'retailPrice'
		}, {
			header : '最低售价',
			width : 75,
			sortable : true,
			dataIndex : 'minPrice'
		}, {
			header : '上限库存',
			width : 75,
			sortable : true,
			dataIndex : 'minOnHand'
		}, {
			header : '下限库存',
			width : 75,
			sortable : true,
			dataIndex : 'maxOnHand'
		}, {
			header : '互换码',
			width : 75,
			sortable : true,
			dataIndex : 'swapCode'
		}, {
			header : '错误',
			width : 75,
			sortable : true,
			dataIndex : 'error'
		} ]);

// create the Grid

	var initialItem_grid = getInitialItemGrid();
	function getInitialItemGrid(){
	return new Ext.grid.EditorGridPanel(
			{
				cm : cm_initialItem,
				id : 'initialItem_Grid',
				store : ds_initialItem,
				selModel : new Ext.grid.RowSelectionModel( {
					moveEditorOnEnter : true
				}),
				iconCls : 'icon-grid',
				loadMask : {
					msg : '数据加载中...'
				},
				stripeRows : true,
				autoScroll : true,
				autoload : true,
				height : 350,
				width : '100%',
				clicksToEdit : 1,
				title : '期初单',
				listeners : {

				},
				tbar : new Ext.Toolbar(
						['-',
								{
									text : '新增一行',
									handler : function() {
									initialItem_form_add.form.reset();
									initialItem_form_add.isAdd=true;
									initialItem_win_add.show();

								}
								},
								'-',
								{
									text : '修改',
									handler : function() {
										var record = initialItem_grid
												.getSelectionModel().getSelected();
										if (record) {
											initialItem_form_add.isAdd=false;
											initialItem_win_add.show();
											initialItem_form_add.getForm()
													.loadRecord(record);
										} else {
											Ext.Msg.alert("信息", "请选择一行");
										}
									}
								},
								'-',
								{
									text : '删除一行',
									handler : function() {
										Ext.Msg
												.confirm(
														'信息',
														'确定要删除',
														function(btn) {
															if (btn == 'yes') {
																var record = initialItem_grid
																		.getSelectionModel()
																		.getSelected();
																if (record) {
																	Ext.Ajax
																			.request( {
																				method : 'POST',
																				params : {
																					id : record.data.id
																				},
																				url : '/initialItem/base!del.do',
																				success : function(
																						response) {
																					var result = Ext
																							.decode(response.responseText);
																					if (result.success == 'ok') {
																						ds_initialItem
																								.remove(record);
																					} else {
																						Ext.Msg
																								.alert(
																										'信息',
																										result.msg);
																					}
																				},
																				failure : function() {
																					alert('网络问题');
																				}
																			});

																} else {
																	Ext.Msg
																			.alert(
																					'信息',
																					"请选择一行");
																}
															}
														});

									}
								},
								'-',
								{
									text : '上传',
									handler : function() {
										initialItem_win_file.show();
									}
								},
								'-',
								{
									text : '保存',
									handler : function() {
										initialItem_win_file.show();
									}
								},
								{
									text : '提交',
									handler : function() {
										Ext.Ajax
												.request( {
													url : '/initial/base!countErrors.do',
													params : {
														initialId : initial.id
													},
													success : function(response) {
														var result = Ext
																.decode(response.responseText);
														if (result.success == 'ok') {
															ds_initialItem
																	.remove(record);
														} else {
															Ext.Msg.alert('信息',
																	result.msg);
															Ext.Msg
																	.confirm(
																			'信息',
																			'有' + result.count + '个零件信息有误,确定要提交吗?',
																			function(
																					btn) {
																				if (btn == 'yes') {
																					Ext.Ajax
																							.request( {
																								url : '/initial/base!submitAsFormal.do',
																								params : {
																									initialId : initial.id
																								},
																								success : function(
																										response) {
																									var result = Ext
																											.decode(response.responseText);
																									if (result.success == 'ok') {
																										Ext.Msg
																												.alert("提交成功");
																									} else {
																										Ext.Msg
																												.alert("提交失败");
																									}
																								}
																							});
																				}
																			});
														}
													},
													failure : function() {
														alert('网络问题');
													}
												});

									}
								} ]),
				// paging bar on the bottom
				bbar : new Ext.PagingToolbar({
					pageSize : 10,
					store : ds_initialItem,
					displayInfo : true,
					style : 'center',
					displayMsg : '第 {0} - {1} 条  共 {2} 条',
					emptyMsg : "没有记录"
				}),
				stateId : 'grid'
			});
}
/* 文件导入 */

var initialItem_form_file = new Ext.FormPanel(
		{
			fileUpload : true,
			width : 500,
			frame : true,
			title : '文件上传',
			autoHeight : true,
			bodyStyle : 'padding: 10px 10px 0 10px;',
			labelWidth : 50,
			defaults : {
				anchor : '95%',
				allowBlank : false,
				msgTarget : 'side'
			},
			items : [ {
				xtype : 'fileuploadfield',
				id : 'form-file',
				emptyText : '请选择文件',
				fieldLabel : '文件:',
				name : 'excel',
				buttonText : '浏览',
				listeners : {
					'fileselected' : function(fb, v) {
						if (v.lastIndexOf(".xls") != -1) {
						} else {

							// alert(Ext.util.JSON.encode(initialFormPanel.getForm().getValues()));
				Ext.Msg.alert("错误", "请选择正确的Excel文件");
				// initialItem_form_file.getForm().reset();
			}
		}
	}
			} ],
			buttons : [
					{
						text : '保存',
						handler : function() {
							// alert(Ext.util.JSON.encode(initialItem_form_file.getForm().getValues()));
							if (initialItem_form_file.getForm().isValid()) {
								initialItem_form_file
										.getForm()
										.submit(
												{
													url : '/initial/base!readExcelData.do',
													params : {
														initialId : '$!{initialVO.id}'
													},
													waitMsg : 'Uploading your photo...',
													success : function(fp, o) {
														msg(
																'Success',
																'Processed file "' + o.result.file + '" on the server');
													}
												});
							}
						}
					}, {
						text : '重置',
						handler : function() {
							initialItem_form_file.getForm().reset();
						}
					} ]
		});
var initialItem_win_file = new Ext.Window( {
	layout : 'fit',
	width : 400,
	height : 'auto',
	closeAction : 'hide',
	plain : true,
	modal : true,
	items : [ initialItem_form_file ]
});

var initialItem_form_add = new Ext.FormPanel( {
	labelAlign : 'right',
	labelWidth : 70,
	bodyStyle : 'padding:5px',
	border : false,
	fileUpload : true,
	baseCls : 'x-plain',
	defaultType : 'textfield',
	height : 'auto',
	xtype : "form",
	items : [{
		xtype:'hidden',
		name:'id'
	}, {
		xtype:'hidden',
		name:'initialId'
	},{
		fieldLabel : '零件编码',
		name : 'code',
		maxLength : 70,
		allowBlank : false
	}, {
		fieldLabel : '零件名称',
		name : 'name',
		maxLength : 70
	}, {
		fieldLabel : '来源',
		xtype : 'combo',
		name : 'source',
		typeAhead : true,
		width : 100,
		valueField : 'varIndex',
		displayField : 'varName',
		mode : 'local',
		hiddenName : 'source',
		store : ds_source_select,
		selectOnFocus : true,
		triggerAction : 'all',
		allowBlank : false,
		loadingText : '加载中...',
		editable : false,
		emptyText : '请选择'
	}, {
		fieldLabel : '品牌',
		name : 'brand',
		maxLength : 70
	}, {
		fieldLabel : '产地',
		name : 'origin',
		maxLength : 70
	}, {
		fieldLabel : '数量',
		name : 'quantity',
		xtype : 'numberfield',
		allowNegative : false,
		maxLength : 70,
		allowBlank : false

	}, {
		fieldLabel : '仓库',
		name : 'storeId',
		maxLength : 70
	}, {
		fieldLabel : '仓位',
		name : 'shelf',
		maxLength : 70,
		allowBlank : false

	}, {
		fieldLabel : '进价',
		name : 'cost',
		allowBlank : false,
		xtype : 'numberfield',
		allowNegative : false,
		maxLength : 70
	}, {
		fieldLabel : '售价',
		allowBlank : false,
		xtype : 'numberfield',
		allowNegative : false,
		name : 'retailPrice',
		maxLength : 70
	}, {
		fieldLabel : '最低售价',
		name : 'minPrice',
		allowBlank : false,
		xtype : 'numberfield',
		allowNegative : false,
		maxLength : 70
	}, {
		fieldLabel : '上限库存',
		allowBlank : false,
		xtype : 'numberfield',
		allowNegative : false,
		name : 'minOnHand',
		maxLength : 70
	}, {
		fieldLabel : '下限库存',
		allowBlank : false,
		xtype : 'numberfield',
		allowNegative : false,
		name : 'maxOnHand',
		maxLength : 70
	}, {
		fieldLabel : '互换码',
		name : 'swapCode',
		maxLength : 70
	}

	],

	handler : function(btn) {
	}
});
var initialItem_win_add = new Ext.Window(
		{
			layout : 'fit',
			width : 400,
			height : 400,
			closeAction : 'hide',
			plain : true,
			modal : true,
			items : [ initialItem_form_add ],
			buttons : [
					{
						text : '保存',
						disabled : false,
						handler : function(btn) {
						/*
							var frm = initialItem_form_add.form;
							if (frm.isValid()) {
								btn.disable();
								Ext.Ajax
										.request( {
											url : '/initialItem/base!save.do',
											params : {
												operation : "new",
												data : Ext.util.JSON
														.encode(initialItem_form_add.form
																.getValues())
											},
											success : function(response) {
										
											var form = initialItem_form_add;
											var initialItemObj = form.form.getValues();
											var store = initialItem_grid.getStore();
												var result = Ext.decode(response.responseText);
												if (result.success == 'ok') {
													if(initialItemObj.id){
													var index = store.indexOf(initialItem_grid.getSelectionModel().getSelected());
													alert(index);
													store.remove(initialItem_grid.getSelectionModel().getSelected());
													initialItem_grid.getView().refresh();
													store.insert(index,new initialItem_record(initialItemObj));
													initialItem_grid.getSelectionModel().selectRow(index);// 选择行
													}else {
														var total=store.getCount();
														store.insert(total,new initialItem_record(initialItemObj));
														initialItem_grid.getSelectionModel().selectRow(total);// 选择行
													}
													
												} else {
													Ext.Msg.alert('信息',
															result.msg);
												}
											},
											failure : function() {
												alert('网络问题');
											}
										});

								btn.enable();
							} else {
								Ext.Msg.alert("信息", '请正确填写相关数据');
							}
							*/
						var frm = initialItem_form_add.form;
						var obj=initialItem_form_add.form.getValues();
						var store = initialItem_grid.getStore();
						if(initialItem_form_add.isAdd){
							if (frm.isValid()) {
								btn.disable();
								Ext.Ajax.request( {
								waitMsg:'提示',
								url : '/initialItem/base!save.do',
								params : {
									operation : "new",
									data : Ext.util.JSON
											.encode(obj)
								},
								method:"POST",
								success : function(response) {
								var result = Ext.decode(response.responseText);
								if (result.success == 'ok') {
								obj.id=result.id;
								var rec=new Ext.data.Record(obj);
								store.add(rec);
								btn.enable();
								} else {
									Ext.Msg.alert('信息',result.msg);
								}
							}
							});
							
							}
							
							
						}else{
							
							if (frm.isValid()) {
								btn.disable();
								Ext.Ajax.request( {
								waitMsg:'提示',
								url : '/initialItem/base!save.do',
								params : {
									operation : "edit",
									data : Ext.util.JSON
											.encode(obj)
								},
								method:"POST",
								success : function(response) {
								var result = Ext.decode(response.responseText);
								if (result.success == 'ok') {
									var index = store.indexOf(initialItem_grid.getSelectionModel().getSelected());
									var item=store.getAt(index);
									for(var fieldName in obj){
										item.set(fieldName,obj[fieldName]);
									}
									store.commitChanges();
									
								} else {
									Ext.Msg.alert('信息',result.msg);
								}
							}
							});
								btn.enable();
							}
							
							
						}
						
						
						
						
						
						
						}
					}, {
						text : '关闭',
						handler : function() {
							initialItem_win_add.hide();
						}
					} ]
		});

var initialFormPanel = new Ext.FormPanel( {
	labelAlign : 'right',
	frame : true,
	formId : 'initial_form',
	height : 820,
	items : [ {
		xtype : 'fieldset',
		border : false,
		layout : 'column',
		width : '100%',
		items : [ {
			layout : 'form',
			items : [ {
				xtype : 'datefield',
				fieldLabel : '入库时间',
				width : 100,
				name : 'gmtAccept',
				value : '$date.date($!{initialVO.gmtAccept})',
				format : 'Y-m-d',
				anchor : '100%'
			} ]
		}, {

			layout : 'form',
			items : [ {
				xtype : 'textfield',
				fieldLabel : '备注',
				name : 'memo',
				value : '$!{initialVO.memo}',
				width : 600,
				anchor : '100%'
			} ]
		} ]
	}, initialItem_grid, {
		xtype : 'fieldset',
		border : false
	}, {
		xtype : 'fieldset',
		border : false,
		layout : 'column',
		width : '100%',
		items : [ {
			columnWidth : .16,
			layout : 'form',
			items : [ {
				xtype : 'textfield',
				fieldLabel : '单据状态',
				name : 'status',
				value : '$!{initialVO.varName}',
				anchor : '100%',
				disabled : false,
				readOnly : true,
				style : 'background-color:gray'
			} ]
		}, {
			columnWidth : .16,
			layout : 'form',
			items : [ {
				xtype : 'textfield',
				fieldLabel : '创建人',
				readOnly : true,
				name : 'creatorName',
				value : '$!{initialVO.creatorName}',
				anchor : '100%'
			} ]
		}, {
			columnWidth : .16,
			layout : 'form',
			items : [ {
				xtype : 'textfield',
				fieldLabel : '创建时间',
				readOnly : true,
				format : 'Y-m-d',
				name : 'gmtCreate',
				value : '$date.date($!{initialVO.gmtCreate})',
				anchor : '100%'
			} ]
		}, {
			columnWidth : .16,
			layout : 'form',
			items : [ {
				xtype : 'textfield',
				fieldLabel : '审核人',
				name : 'submitterName',
				value : '$!{initialVO.submitterName}',
				readOnly : true,
				anchor : '100%'
			} ]
		}, {
			columnWidth : .16,
			layout : 'form',
			items : [ {
				xtype : 'textfield',
				fieldLabel : '审核时间',
				name : 'gmtSubmit',
				format : 'Y-m-d',
				value : '$date.date($!{initialVO.gmtSubmit})',
				readOnly : true,
				anchor : '100%'
			} ]
		}, {
			columnWidth : .16,
			layout : 'form',
			items : [ {
				xtype : 'textfield',
				fieldLabel : '总金额(进价)',
				name : 'amount',
				value : '$!{initialVO.amount}',
				readOnly : true,
				anchor : '100%'
			} ]
		} ]
	} ]
});

// render the grid to the specified div in the page
